package com.test.design.pattern.prototype.demo1;

/**
 * @ClasName Citation
 * @Descripution TODO
 * @Author leikw
 * @Date 2021/11/6 16:56
 * @Version V1.0
 */
//用一个已经创建的实例作为原型，通过复制该原型对象来创建一个和原型对象相同的新对象。

//拷贝出来的对象，有自己新的内存地址，而不是跟被拷贝对象一样指向同一个内存地址。
//
//3.使用clone（）拷贝对象跟new 对象的区别是，new是出来一个初始化新对象，而clone是复制出来一个包含原对象一些信息数据的新对象
public class Citation implements Cloneable {

    public Citation(){
        System.out.println("进入实例化");
    }

    private Student stu;

    public Student getStu() {
        return stu;
    }

    public void setStu(Student stu) {
        this.stu = stu;
    }

    @Override
    public Citation clone() throws CloneNotSupportedException {
        return (Citation) super.clone();
    }

    public void show() {
        System.out.println(stu.getName() + "同学：在2020学年第一学期中表现优秀，被评为三好学生。特发此状！");
    }
}
